﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WordBinder.Binder
{
    public class Map
    {
        public ComplexItem Header { get; set; }
        public ComplexItem Footer { get; set; }
        public ComplexItem Body { get; set; }
    }

    public class SimpleItem : BaseItem
    {
        public virtual string Format { get; set; }
        public List<Mask> Masks { get; set; }
    }

    public class ImageItem : BaseItem
    {
        public ImageType Type { get; set; }
        public int Heigth { get; set; }
        public int Width { get; set; }
    }

    public class ComplexItem
    {
        public string RootNodePath { get; set; }
        public ComplexType Type { get; set; }
        public List<ComplexItem> ComplexItems { get; set; }
        public List<SimpleItem> SimpleItems { get; set; }
        public List<ImageItem> ImageItems { get; set; }

        public ComplexItem()
        {
            Type = ComplexType.Items;
        }
    }

    public class BaseItem
    {
        public virtual string Key { get; set; }
        public virtual string XPath { get; set; }
    }

    public class Mask
    {
        public virtual object Value { get; set; }
        public virtual string Replace { get; set; }
        public virtual string Format { get; set; }
    }
}
